package com.shopping.controller.back;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.shopping.commons.response.DataGradResp;
import com.shopping.commons.response.MessageResp;
import com.shopping.model.Address;
import com.shopping.param.AddressParam;
import com.shopping.service.IAddressService;

/**
 * 地址  类的   Conroller
 * @author Administrator
 *
 */
@Controller
@RequestMapping("back/address")   //指定的该controller  进入的时候用  localhost:8080/项目名/address
public class AddressController {  
	
	@Autowired
	private IAddressService addressService;
	
	/**
	 * 增加一个 地址到   某个用户
	 * @param request
	 * @param param
	 * @return
	 */
	@RequestMapping("insert")//指定的该方法  进入的时候用  localhost:8080/项目名/address/insert
	@ResponseBody  ///这个是吧MessageResp转成  json 的注解   普遍就是   对应  ajax 的请求    
	public MessageResp insert(HttpServletRequest request,Address param){
//		addressService.getstr();   //这里就说明，在  接口的层面， 这个方法是  不想暴露给Controller的
		//request.getSession().getAttribute("yhj");  request 取 session   session 是 键值对
		//request.getHeader("yhj");   request  里面  取到   headers
		return addressService.insert(param);
	}
	
	/**
	 * 查询 地址
	 * @param request
	 * @param param
	 * @return
	 */
	@RequestMapping("select")//指定的该方法  进入的时候用  localhost:8080/项目名/address/select
	@ResponseBody  ///这个是吧MessageResp转成  json 的注解
	public DataGradResp<Address> select(HttpServletRequest request,AddressParam param){
//		addressService.getstr();   //这里就说明，在  接口的层面， 这个方法是  不想暴露给Contooler的
		return addressService.select(param);
	}
	
	/**
	 * 删除 逻辑删除   
	 * @param request
	 * @param param
	 * @return
	 */
	/*resetful 接口规范  接口编码的风格*/
	@RequestMapping(value="{id}",method=RequestMethod.DELETE)//指定的该方法  进入的时候用  localhost:8080/项目名/address/insert
	@ResponseBody  ///这个是吧MessageResp转成  json 的注解
	public MessageResp delete(HttpServletRequest request,@PathVariable("id") Integer id){
//		addressService.getstr();   //这里就说明，在  接口的层面， 这个方法是  不想暴露给Contooler的
		return addressService.delete(id);
	}
	
	/**
	 * 多个 删除用户   
	 * @param request
	 * @param param
	 * @return
	 */
	/*resetful 接口规范  接口编码的风格*/
	@RequestMapping(value="del/{ids}",method=RequestMethod.DELETE)
	@ResponseBody 
	public MessageResp batchDelete(HttpServletRequest request,@PathVariable("ids") String ids){
		return addressService.batchDelete(ids);
	}
	
	@RequestMapping("update")//指定的该方法  进入的时候用  localhost:8080/项目名/address/insert
	@ResponseBody  ///这个是吧MessageResp转成  json 的注解
	public MessageResp update(HttpServletRequest request,Address param){
//		addressService.getstr();   //这里就说明，在  接口的层面， 这个方法是  不想暴露给Contooler的
		return addressService.update(param);
	}

}
